<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GstEvent: GStreamer 1.0 Core Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
<link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
<link rel="prev" href="gstreamer-GstGError.html" title="GstError">
<link rel="next" href="gstreamer-GstFormat.html" title="GstFormat">
<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#GstEvent.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                  <a href="#GstEvent.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="gstreamer-GstGError.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="gstreamer-GstFormat.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="GstEvent"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="GstEvent.top_of_page"></a>GstEvent</span></h2>
<p>GstEvent — Structure describing events that are passed up and down
                    a pipeline</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="GstEvent.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
<col class="functions_name">
</colgroup>
<tbody>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstEvent.html#GST-EVENT-MAKE-TYPE:CAPS" title="GST_EVENT_MAKE_TYPE()">GST_EVENT_MAKE_TYPE</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstEvent.html#GST-EVENT-TYPE:CAPS" title="GST_EVENT_TYPE()">GST_EVENT_TYPE</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstEvent.html#GST-EVENT-TYPE-NAME:CAPS" title="GST_EVENT_TYPE_NAME()">GST_EVENT_TYPE_NAME</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstEvent.html#GST-EVENT-TIMESTAMP:CAPS" title="GST_EVENT_TIMESTAMP()">GST_EVENT_TIMESTAMP</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstEvent.html#GST-EVENT-SEQNUM:CAPS" title="GST_EVENT_SEQNUM()">GST_EVENT_SEQNUM</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstEvent.html#GST-EVENT-IS-UPSTREAM:CAPS" title="GST_EVENT_IS_UPSTREAM()">GST_EVENT_IS_UPSTREAM</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstEvent.html#GST-EVENT-IS-DOWNSTREAM:CAPS" title="GST_EVENT_IS_DOWNSTREAM()">GST_EVENT_IS_DOWNSTREAM</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstEvent.html#GST-EVENT-IS-SERIALIZED:CAPS" title="GST_EVENT_IS_SERIALIZED()">GST_EVENT_IS_SERIALIZED</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstEvent.html#GST-EVENT-IS-STICKY:CAPS" title="GST_EVENT_IS_STICKY()">GST_EVENT_IS_STICKY</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html#GstEventTypeFlags" title="enum GstEventTypeFlags"><span class="returnvalue">GstEventTypeFlags</span></a>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-type-get-flags" title="gst_event_type_get_flags ()">gst_event_type_get_flags</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-type-get-name" title="gst_event_type_get_name ()">gst_event_type_get_name</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-type-to-quark" title="gst_event_type_to_quark ()">gst_event_type_to_quark</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-ref" title="gst_event_ref ()">gst_event_ref</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-unref" title="gst_event_unref ()">gst_event_unref</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-replace" title="gst_event_replace ()">gst_event_replace</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-copy" title="gst_event_copy ()">gst_event_copy</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-steal" title="gst_event_steal ()">gst_event_steal</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-take" title="gst_event_take ()">gst_event_take</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-is-writable" title="gst_event_is_writable()">gst_event_is_writable</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-make-writable" title="gst_event_make_writable()">gst_event_make_writable</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstStructure.html" title="GstStructure"><span class="returnvalue">GstStructure</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-writable-structure" title="gst_event_writable_structure ()">gst_event_writable_structure</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-new-custom" title="gst_event_new_custom ()">gst_event_new_custom</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <a class="link" href="GstStructure.html" title="GstStructure"><span class="returnvalue">GstStructure</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-get-structure" title="gst_event_get_structure ()">gst_event_get_structure</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-has-name" title="gst_event_has_name ()">gst_event_has_name</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-get-seqnum" title="gst_event_get_seqnum ()">gst_event_get_seqnum</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-set-seqnum" title="gst_event_set_seqnum ()">gst_event_set_seqnum</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-get-running-time-offset" title="gst_event_get_running_time_offset ()">gst_event_get_running_time_offset</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-set-running-time-offset" title="gst_event_set_running_time_offset ()">gst_event_set_running_time_offset</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-new-flush-start" title="gst_event_new_flush_start ()">gst_event_new_flush_start</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-new-flush-stop" title="gst_event_new_flush_stop ()">gst_event_new_flush_stop</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-parse-flush-stop" title="gst_event_parse_flush_stop ()">gst_event_parse_flush_stop</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-new-eos" title="gst_event_new_eos ()">gst_event_new_eos</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-new-gap" title="gst_event_new_gap ()">gst_event_new_gap</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-parse-gap" title="gst_event_parse_gap ()">gst_event_parse_gap</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-new-stream-start" title="gst_event_new_stream_start ()">gst_event_new_stream_start</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-parse-stream-start" title="gst_event_parse_stream_start ()">gst_event_parse_stream_start</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-set-stream-flags" title="gst_event_set_stream_flags ()">gst_event_set_stream_flags</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-parse-stream-flags" title="gst_event_parse_stream_flags ()">gst_event_parse_stream_flags</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-set-group-id" title="gst_event_set_group_id ()">gst_event_set_group_id</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-parse-group-id" title="gst_event_parse_group_id ()">gst_event_parse_group_id</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-set-stream" title="gst_event_set_stream ()">gst_event_set_stream</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-parse-stream" title="gst_event_parse_stream ()">gst_event_parse_stream</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-new-segment" title="gst_event_new_segment ()">gst_event_new_segment</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-parse-segment" title="gst_event_parse_segment ()">gst_event_parse_segment</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-copy-segment" title="gst_event_copy_segment ()">gst_event_copy_segment</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-new-tag" title="gst_event_new_tag ()">gst_event_new_tag</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-parse-tag" title="gst_event_parse_tag ()">gst_event_parse_tag</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-new-buffer-size" title="gst_event_new_buffer_size ()">gst_event_new_buffer_size</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-parse-buffer-size" title="gst_event_parse_buffer_size ()">gst_event_parse_buffer_size</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-new-qos" title="gst_event_new_qos ()">gst_event_new_qos</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-parse-qos" title="gst_event_parse_qos ()">gst_event_parse_qos</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-new-seek" title="gst_event_new_seek ()">gst_event_new_seek</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-parse-seek" title="gst_event_parse_seek ()">gst_event_parse_seek</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-set-seek-trickmode-interval" title="gst_event_set_seek_trickmode_interval ()">gst_event_set_seek_trickmode_interval</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-parse-seek-trickmode-interval" title="gst_event_parse_seek_trickmode_interval ()">gst_event_parse_seek_trickmode_interval</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-new-navigation" title="gst_event_new_navigation ()">gst_event_new_navigation</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-new-latency" title="gst_event_new_latency ()">gst_event_new_latency</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-parse-latency" title="gst_event_parse_latency ()">gst_event_parse_latency</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-new-step" title="gst_event_new_step ()">gst_event_new_step</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-parse-step" title="gst_event_parse_step ()">gst_event_parse_step</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-new-sink-message" title="gst_event_new_sink_message ()">gst_event_new_sink_message</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-parse-sink-message" title="gst_event_parse_sink_message ()">gst_event_parse_sink_message</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-new-reconfigure" title="gst_event_new_reconfigure ()">gst_event_new_reconfigure</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-new-caps" title="gst_event_new_caps ()">gst_event_new_caps</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-parse-caps" title="gst_event_parse_caps ()">gst_event_parse_caps</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-new-toc" title="gst_event_new_toc ()">gst_event_new_toc</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-parse-toc" title="gst_event_parse_toc ()">gst_event_parse_toc</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-new-toc-select" title="gst_event_new_toc_select ()">gst_event_new_toc_select</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-parse-toc-select" title="gst_event_parse_toc_select ()">gst_event_parse_toc_select</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-new-segment-done" title="gst_event_new_segment_done ()">gst_event_new_segment_done</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-parse-segment-done" title="gst_event_parse_segment_done ()">gst_event_parse_segment_done</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-new-protection" title="gst_event_new_protection ()">gst_event_new_protection</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-parse-protection" title="gst_event_parse_protection ()">gst_event_parse_protection</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-new-select-streams" title="gst_event_new_select_streams ()">gst_event_new_select_streams</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-parse-select-streams" title="gst_event_parse_select_streams ()">gst_event_parse_select_streams</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-new-stream-collection" title="gst_event_new_stream_collection ()">gst_event_new_stream_collection</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-parse-stream-collection" title="gst_event_parse_stream_collection ()">gst_event_parse_stream_collection</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-new-stream-group-done" title="gst_event_new_stream_group_done ()">gst_event_new_stream_group_done</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstEvent.html#gst-event-parse-stream-group-done" title="gst_event_parse_stream_group_done ()">gst_event_parse_stream_group_done</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GstEvent.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="name">
<col class="description">
</colgroup>
<tbody>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="GstEvent.html#GstEvent-struct" title="struct GstEvent">GstEvent</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GstEvent.html#GstEventTypeFlags" title="enum GstEventTypeFlags">GstEventTypeFlags</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="GstEvent.html#GST-EVENT-TYPE-BOTH:CAPS" title="GST_EVENT_TYPE_BOTH">GST_EVENT_TYPE_BOTH</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GstEvent.html#GstEventType" title="enum GstEventType">GstEventType</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GstEvent.html#GstStreamFlags" title="enum GstStreamFlags">GstStreamFlags</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GstEvent.html#GstQOSType" title="enum GstQOSType">GstQOSType</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GstEvent.html#GstSeekType" title="enum GstSeekType">GstSeekType</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GstEvent.html#GstSeekFlags" title="enum GstSeekFlags">GstSeekFlags</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GstEvent.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
    <span class="lineart">╰──</span> GstEvent
</pre>
</div>
<div class="refsect1">
<a name="GstEvent.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;gst/gst.h&gt;
</pre>
</div>
<div class="refsect1">
<a name="GstEvent.description"></a><h2>Description</h2>
<p>The event class provides factory methods to construct events for sending
and functions to query (parse) received events.</p>
<p>Events are usually created with gst_event_new_*() which takes event-type
specific parameters as arguments.
To send an event application will usually use <a class="link" href="GstElement.html#gst-element-send-event" title="gst_element_send_event ()"><code class="function">gst_element_send_event()</code></a> and
elements will use <a class="link" href="GstPad.html#gst-pad-send-event" title="gst_pad_send_event ()"><code class="function">gst_pad_send_event()</code></a> or <a class="link" href="GstPad.html#gst-pad-push-event" title="gst_pad_push_event ()"><code class="function">gst_pad_push_event()</code></a>.
The event should be unreffed with <a class="link" href="GstEvent.html#gst-event-unref" title="gst_event_unref ()"><code class="function">gst_event_unref()</code></a> if it has not been sent.</p>
<p>Events that have been received can be parsed with their respective
gst_event_parse_*() functions. It is valid to pass <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for unwanted details.</p>
<p>Events are passed between elements in parallel to the data stream. Some events
are serialized with buffers, others are not. Some events only travel downstream,
others only upstream. Some events can travel both upstream and downstream.</p>
<p>The events are used to signal special conditions in the datastream such as
EOS (end of stream) or the start of a new stream-segment.
Events are also used to flush the pipeline of any pending data.</p>
<p>Most of the event API is used inside plugins. Applications usually only
construct and use seek events.
To do that <a class="link" href="GstEvent.html#gst-event-new-seek" title="gst_event_new_seek ()"><code class="function">gst_event_new_seek()</code></a> is used to create a seek event. It takes
the needed parameters to specify seeking time and mode.</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15</pre></td>
        <td class="listing_code"><pre class="programlisting">GstEvent <span class="gtkdoc opt">*</span>event<span class="gtkdoc opt">;</span>
gboolean result<span class="gtkdoc opt">;</span>
<span class="gtkdoc opt">...</span>
<span class="gtkdoc slc">// construct a seek event to play the media from second 2 to 5, flush</span>
<span class="gtkdoc slc">// the pipeline to decrease latency.</span>
event <span class="gtkdoc opt">=</span> <span class="function"><a href="GstEvent.html#gst-event-new-seek">gst_event_new_seek</a></span> <span class="gtkdoc opt">(</span><span class="number">1.0</span><span class="gtkdoc opt">,</span>
   GST_FORMAT_TIME<span class="gtkdoc opt">,</span>
   GST_SEEK_FLAG_FLUSH<span class="gtkdoc opt">,</span>
   GST_SEEK_TYPE_SET<span class="gtkdoc opt">,</span> <span class="number">2</span> <span class="gtkdoc opt">*</span> GST_SECOND<span class="gtkdoc opt">,</span>
   GST_SEEK_TYPE_SET<span class="gtkdoc opt">,</span> <span class="number">5</span> <span class="gtkdoc opt">*</span> GST_SECOND<span class="gtkdoc opt">);</span>
<span class="gtkdoc opt">...</span>
result <span class="gtkdoc opt">=</span> <span class="function"><a href="GstElement.html#gst-element-send-event">gst_element_send_event</a></span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">,</span> event<span class="gtkdoc opt">);</span>
<span class="keyword">if</span> <span class="gtkdoc opt">(!</span>result<span class="gtkdoc opt">)</span>
  <span class="function"><a href="/usr/share/gtk-doc/html/glib/glib-Message-Logging.html#g-warning">g_warning</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;seek failed&quot;</span><span class="gtkdoc opt">);</span>
<span class="gtkdoc opt">...</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
</div>
<div class="refsect1">
<a name="GstEvent.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="GST-EVENT-MAKE-TYPE:CAPS"></a><h3>GST_EVENT_MAKE_TYPE()</h3>
<pre class="programlisting">#define             GST_EVENT_MAKE_TYPE(num,flags)</pre>
<p>when making custom event types, use this macro with the num and
the given flags</p>
<div class="refsect3">
<a name="GST-EVENT-MAKE-TYPE.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>num</p></td>
<td class="parameter_description"><p>the event number to create</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>flags</p></td>
<td class="parameter_description"><p>the event flags</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-EVENT-TYPE:CAPS"></a><h3>GST_EVENT_TYPE()</h3>
<pre class="programlisting">#define GST_EVENT_TYPE(event)           (GST_EVENT_CAST(event)-&gt;type)
</pre>
<p>Get the <a class="link" href="GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> of the event.</p>
<div class="refsect3">
<a name="GST-EVENT-TYPE.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the event to query</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-EVENT-TYPE-NAME:CAPS"></a><h3>GST_EVENT_TYPE_NAME()</h3>
<pre class="programlisting">#define GST_EVENT_TYPE_NAME(event)      (gst_event_type_get_name(GST_EVENT_TYPE(event)))
</pre>
<p>Get a constant string representation of the <a class="link" href="GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> of the event.</p>
<div class="refsect3">
<a name="GST-EVENT-TYPE-NAME.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the event to query</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-EVENT-TIMESTAMP:CAPS"></a><h3>GST_EVENT_TIMESTAMP()</h3>
<pre class="programlisting">#define GST_EVENT_TIMESTAMP(event)      (GST_EVENT_CAST(event)-&gt;timestamp)
</pre>
<p>Get the <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp of the event. This is the time when the event
was created.</p>
<div class="refsect3">
<a name="GST-EVENT-TIMESTAMP.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the event to query</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-EVENT-SEQNUM:CAPS"></a><h3>GST_EVENT_SEQNUM()</h3>
<pre class="programlisting">#define GST_EVENT_SEQNUM(event)         (GST_EVENT_CAST(event)-&gt;seqnum)
</pre>
<p>The sequence number of <em class="parameter"><code>event</code></em>
.</p>
<div class="refsect3">
<a name="GST-EVENT-SEQNUM.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the event to query</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-EVENT-IS-UPSTREAM:CAPS"></a><h3>GST_EVENT_IS_UPSTREAM()</h3>
<pre class="programlisting">#define GST_EVENT_IS_UPSTREAM(ev)       !!(GST_EVENT_TYPE (ev) &amp; GST_EVENT_TYPE_UPSTREAM)
</pre>
<p>Check if an event can travel upstream.</p>
<div class="refsect3">
<a name="GST-EVENT-IS-UPSTREAM.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>ev</p></td>
<td class="parameter_description"><p>the event to query</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-EVENT-IS-DOWNSTREAM:CAPS"></a><h3>GST_EVENT_IS_DOWNSTREAM()</h3>
<pre class="programlisting">#define GST_EVENT_IS_DOWNSTREAM(ev)     !!(GST_EVENT_TYPE (ev) &amp; GST_EVENT_TYPE_DOWNSTREAM)
</pre>
<p>Check if an event can travel downstream.</p>
<div class="refsect3">
<a name="GST-EVENT-IS-DOWNSTREAM.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>ev</p></td>
<td class="parameter_description"><p>the event to query</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-EVENT-IS-SERIALIZED:CAPS"></a><h3>GST_EVENT_IS_SERIALIZED()</h3>
<pre class="programlisting">#define GST_EVENT_IS_SERIALIZED(ev)     !!(GST_EVENT_TYPE (ev) &amp; GST_EVENT_TYPE_SERIALIZED)
</pre>
<p>Check if an event is serialized with the data stream.</p>
<div class="refsect3">
<a name="GST-EVENT-IS-SERIALIZED.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>ev</p></td>
<td class="parameter_description"><p>the event to query</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-EVENT-IS-STICKY:CAPS"></a><h3>GST_EVENT_IS_STICKY()</h3>
<pre class="programlisting">#define GST_EVENT_IS_STICKY(ev)     !!(GST_EVENT_TYPE (ev) &amp; GST_EVENT_TYPE_STICKY)
</pre>
<p>Check if an event is sticky on the pads.</p>
<div class="refsect3">
<a name="GST-EVENT-IS-STICKY.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>ev</p></td>
<td class="parameter_description"><p>the event to query</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-type-get-flags"></a><h3>gst_event_type_get_flags ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html#GstEventTypeFlags" title="enum GstEventTypeFlags"><span class="returnvalue">GstEventTypeFlags</span></a>
gst_event_type_get_flags (<em class="parameter"><code><a class="link" href="GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> type</code></em>);</pre>
<p>Gets the <a class="link" href="GstEvent.html#GstEventTypeFlags" title="enum GstEventTypeFlags"><span class="type">GstEventTypeFlags</span></a> associated with <em class="parameter"><code>type</code></em>
.</p>
<div class="refsect3">
<a name="gst-event-type-get-flags.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>type</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-type-get-flags.returns"></a><h4>Returns</h4>
<p> a <a class="link" href="GstEvent.html#GstEventTypeFlags" title="enum GstEventTypeFlags"><span class="type">GstEventTypeFlags</span></a>.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-type-get-name"></a><h3>gst_event_type_get_name ()</h3>
<pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
gst_event_type_get_name (<em class="parameter"><code><a class="link" href="GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> type</code></em>);</pre>
<p>Get a printable name for the given event type. Do not modify or free.</p>
<div class="refsect3">
<a name="gst-event-type-get-name.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>type</p></td>
<td class="parameter_description"><p>the event type</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-type-get-name.returns"></a><h4>Returns</h4>
<p> a reference to the static name of the event.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-type-to-quark"></a><h3>gst_event_type_to_quark ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a>
gst_event_type_to_quark (<em class="parameter"><code><a class="link" href="GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> type</code></em>);</pre>
<p>Get the unique quark for the given event type.</p>
<div class="refsect3">
<a name="gst-event-type-to-quark.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>type</p></td>
<td class="parameter_description"><p>the event type</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-type-to-quark.returns"></a><h4>Returns</h4>
<p> the quark associated with the event type</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-ref"></a><h3>gst_event_ref ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_ref (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
<p>Increase the refcount of this event.</p>
<div class="refsect3">
<a name="gst-event-ref.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>The event to refcount</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-ref.returns"></a><h4>Returns</h4>
<p><em class="parameter"><code>event</code></em>
(for convenience when doing assignments). </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-unref"></a><h3>gst_event_unref ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_unref (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
<p>Decrease the refcount of an event, freeing it if the refcount reaches 0.</p>
<div class="refsect3">
<a name="gst-event-unref.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the event to refcount. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-replace"></a><h3>gst_event_replace ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
gst_event_replace (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> **old_event</code></em>,
                   <em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *new_event</code></em>);</pre>
<p>Modifies a pointer to a <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> to point to a different <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>. The
modification is done atomically (so this is useful for ensuring thread safety
in some cases), and the reference counts are updated appropriately (the old
event is unreffed, the new one is reffed).</p>
<p>Either <em class="parameter"><code>new_event</code></em>
 or the <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> pointed to by <em class="parameter"><code>old_event</code></em>
 may be <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
<div class="refsect3">
<a name="gst-event-replace.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>old_event</p></td>
<td class="parameter_description"><p>pointer to a
pointer to a <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> to be replaced. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>new_event</p></td>
<td class="parameter_description"><p>pointer to a <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> that will
replace the event pointed to by <em class="parameter"><code>old_event</code></em>
. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-replace.returns"></a><h4>Returns</h4>
<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>new_event</code></em>
was different from <em class="parameter"><code>old_event</code></em>
</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-copy"></a><h3>gst_event_copy ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_copy (<em class="parameter"><code>const <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
<p>Copy the event using the event specific copy function.</p>
<div class="refsect3">
<a name="gst-event-copy.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>The event to copy</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-copy.returns"></a><h4>Returns</h4>
<p>the new event. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-steal"></a><h3>gst_event_steal ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_steal (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> **old_event</code></em>);</pre>
<p>Atomically replace the <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> pointed to by <em class="parameter"><code>old_event</code></em>
 with <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and
return the original event.</p>
<div class="refsect3">
<a name="gst-event-steal.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>old_event</p></td>
<td class="parameter_description"><p>pointer to a
pointer to a <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> to be stolen. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-steal.returns"></a><h4>Returns</h4>
<p> the <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> that was in <em class="parameter"><code>old_event</code></em>
</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-take"></a><h3>gst_event_take ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
gst_event_take (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> **old_event</code></em>,
                <em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *new_event</code></em>);</pre>
<p>Modifies a pointer to a <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> to point to a different <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>. This
function is similar to <a class="link" href="GstEvent.html#gst-event-replace" title="gst_event_replace ()"><code class="function">gst_event_replace()</code></a> except that it takes ownership of
<em class="parameter"><code>new_event</code></em>
.</p>
<p>Either <em class="parameter"><code>new_event</code></em>
 or the <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> pointed to by <em class="parameter"><code>old_event</code></em>
 may be <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
<div class="refsect3">
<a name="gst-event-take.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>old_event</p></td>
<td class="parameter_description"><p>pointer to a
pointer to a <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> to be stolen. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>new_event</p></td>
<td class="parameter_description"><p>pointer to a <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> that will
replace the event pointed to by <em class="parameter"><code>old_event</code></em>
. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-take.returns"></a><h4>Returns</h4>
<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>new_event</code></em>
was different from <em class="parameter"><code>old_event</code></em>
</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-is-writable"></a><h3>gst_event_is_writable()</h3>
<pre class="programlisting">#define         gst_event_is_writable(ev)     gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (ev))
</pre>
<p>Tests if you can safely write data into a event's structure or validly
modify the seqnum and timestamp field.</p>
<div class="refsect3">
<a name="gst-event-is-writable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>ev</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-make-writable"></a><h3>gst_event_make_writable()</h3>
<pre class="programlisting">#define         gst_event_make_writable(ev)   GST_EVENT_CAST (gst_mini_object_make_writable (GST_MINI_OBJECT_CAST (ev)))
</pre>
<p>Makes a writable event from the given event. If the source event is
already writable, this will simply return the same event. A copy will
otherwise be made using <a class="link" href="GstEvent.html#gst-event-copy" title="gst_event_copy ()"><code class="function">gst_event_copy()</code></a>.</p>
<div class="refsect3">
<a name="gst-event-make-writable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>ev</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-make-writable.returns"></a><h4>Returns</h4>
<p>a writable event which may or may not be the
same as <em class="parameter"><code>ev</code></em>
. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-writable-structure"></a><h3>gst_event_writable_structure ()</h3>
<pre class="programlisting"><a class="link" href="GstStructure.html" title="GstStructure"><span class="returnvalue">GstStructure</span></a> *
gst_event_writable_structure (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
<p>Get a writable version of the structure.</p>
<div class="refsect3">
<a name="gst-event-writable-structure.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>The <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-writable-structure.returns"></a><h4>Returns</h4>
<p>The structure of the event. The structure
is still owned by the event, which means that you should not free
it and that the pointer becomes invalid when you free the event.
This function checks if <em class="parameter"><code>event</code></em>
is writable and will never return
<a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
<p>MT safe. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-new-custom"></a><h3>gst_event_new_custom ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_new_custom (<em class="parameter"><code><a class="link" href="GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> type</code></em>,
                      <em class="parameter"><code><a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> *structure</code></em>);</pre>
<p>Create a new custom-typed event. This can be used for anything not
handled by other event-specific functions to pass an event to another
element.</p>
<p>Make sure to allocate an event type with the <a class="link" href="GstEvent.html#GST-EVENT-MAKE-TYPE:CAPS" title="GST_EVENT_MAKE_TYPE()"><span class="type">GST_EVENT_MAKE_TYPE</span></a> macro,
assigning a free number and filling in the correct direction and
serialization flags.</p>
<p>New custom events can also be created by subclassing the event type if
needed.</p>
<div class="refsect3">
<a name="gst-event-new-custom.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>type</p></td>
<td class="parameter_description"><p>The type of the new event</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>structure</p></td>
<td class="parameter_description"><p>the structure for the event. The event will
take ownership of the structure. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-new-custom.returns"></a><h4>Returns</h4>
<p>the new custom event. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-get-structure"></a><h3>gst_event_get_structure ()</h3>
<pre class="programlisting">const <a class="link" href="GstStructure.html" title="GstStructure"><span class="returnvalue">GstStructure</span></a> *
gst_event_get_structure (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
<p>Access the structure of the event.</p>
<div class="refsect3">
<a name="gst-event-get-structure.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>The <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-get-structure.returns"></a><h4>Returns</h4>
<p>The structure of the event. The
structure is still owned by the event, which means that you should not free
it and that the pointer becomes invalid when you free the event.</p>
<p>MT safe. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-has-name"></a><h3>gst_event_has_name ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
gst_event_has_name (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                    <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
<p>Checks if <em class="parameter"><code>event</code></em>
 has the given <em class="parameter"><code>name</code></em>
. This function is usually used to
check the name of a custom event.</p>
<div class="refsect3">
<a name="gst-event-has-name.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>The <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>name to check</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-has-name.returns"></a><h4>Returns</h4>
<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>name</code></em>
matches the name of the event structure.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-get-seqnum"></a><h3>gst_event_get_seqnum ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>
gst_event_get_seqnum (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
<p>Retrieve the sequence number of a event.</p>
<p>Events have ever-incrementing sequence numbers, which may also be set
explicitly via <a class="link" href="GstEvent.html#gst-event-set-seqnum" title="gst_event_set_seqnum ()"><code class="function">gst_event_set_seqnum()</code></a>. Sequence numbers are typically used to
indicate that a event corresponds to some other set of events or messages,
for example an EOS event corresponding to a SEEK event. It is considered good
practice to make this correspondence when possible, though it is not
required.</p>
<p>Note that events and messages share the same sequence number incrementor;
two events or messages will never have the same sequence number unless
that correspondence was made explicitly.</p>
<div class="refsect3">
<a name="gst-event-get-seqnum.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>A <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-get-seqnum.returns"></a><h4>Returns</h4>
<p> The event's sequence number.</p>
<p>MT safe.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-set-seqnum"></a><h3>gst_event_set_seqnum ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_set_seqnum (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> seqnum</code></em>);</pre>
<p>Set the sequence number of a event.</p>
<p>This function might be called by the creator of a event to indicate that the
event relates to other events or messages. See <a class="link" href="GstEvent.html#gst-event-get-seqnum" title="gst_event_get_seqnum ()"><code class="function">gst_event_get_seqnum()</code></a> for
more information.</p>
<p>MT safe.</p>
<div class="refsect3">
<a name="gst-event-set-seqnum.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>A <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>seqnum</p></td>
<td class="parameter_description"><p>A sequence number.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-get-running-time-offset"></a><h3>gst_event_get_running_time_offset ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a>
gst_event_get_running_time_offset (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
<p>Retrieve the accumulated running time offset of the event.</p>
<p>Events passing through <a href="GstPad.html#GstPad-struct"><span class="type">GstPads</span></a> that have a running time
offset set via <a class="link" href="GstPad.html#gst-pad-set-offset" title="gst_pad_set_offset ()"><code class="function">gst_pad_set_offset()</code></a> will get their offset
adjusted according to the pad's offset.</p>
<p>If the event contains any information that related to the
running time, this information will need to be updated
before usage with this offset.</p>
<div class="refsect3">
<a name="gst-event-get-running-time-offset.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>A <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-get-running-time-offset.returns"></a><h4>Returns</h4>
<p> The event's running time offset</p>
<p>MT safe.</p>
</div>
<p class="since">Since: <a class="link" href="ix08.html#api-index-1.4">1.4</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-set-running-time-offset"></a><h3>gst_event_set_running_time_offset ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_set_running_time_offset (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> offset</code></em>);</pre>
<p>Set the running time offset of a event. See
<a class="link" href="GstEvent.html#gst-event-get-running-time-offset" title="gst_event_get_running_time_offset ()"><code class="function">gst_event_get_running_time_offset()</code></a> for more information.</p>
<p>MT safe.</p>
<div class="refsect3">
<a name="gst-event-set-running-time-offset.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>A <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>offset</p></td>
<td class="parameter_description"><p>A the new running time offset</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix08.html#api-index-1.4">1.4</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-new-flush-start"></a><h3>gst_event_new_flush_start ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_new_flush_start (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>Allocate a new flush start event. The flush start event can be sent
upstream and downstream and travels out-of-bounds with the dataflow.</p>
<p>It marks pads as being flushing and will make them return
<a class="link" href="GstPad.html#GST-FLOW-FLUSHING:CAPS"><span class="type">GST_FLOW_FLUSHING</span></a> when used for data flow with <a class="link" href="GstPad.html#gst-pad-push" title="gst_pad_push ()"><code class="function">gst_pad_push()</code></a>,
<a class="link" href="GstPad.html#gst-pad-chain" title="gst_pad_chain ()"><code class="function">gst_pad_chain()</code></a>, <a class="link" href="GstPad.html#gst-pad-get-range" title="gst_pad_get_range ()"><code class="function">gst_pad_get_range()</code></a> and <a class="link" href="GstPad.html#gst-pad-pull-range" title="gst_pad_pull_range ()"><code class="function">gst_pad_pull_range()</code></a>.
Any event (except a <a class="link" href="GstEvent.html#GST-EVENT-FLUSH-STOP:CAPS"><span class="type">GST_EVENT_FLUSH_STOP</span></a>) received
on a flushing pad will return <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> immediately.</p>
<p>Elements should unlock any blocking functions and exit their streaming
functions as fast as possible when this event is received.</p>
<p>This event is typically generated after a seek to flush out all queued data
in the pipeline so that the new media is played as soon as possible.</p>
<div class="refsect3">
<a name="gst-event-new-flush-start.returns"></a><h4>Returns</h4>
<p>a new flush start event. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-new-flush-stop"></a><h3>gst_event_new_flush_stop ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_new_flush_stop (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> reset_time</code></em>);</pre>
<p>Allocate a new flush stop event. The flush stop event can be sent
upstream and downstream and travels serialized with the dataflow.
It is typically sent after sending a FLUSH_START event to make the
pads accept data again.</p>
<p>Elements can process this event synchronized with the dataflow since
the preceding FLUSH_START event stopped the dataflow.</p>
<p>This event is typically generated to complete a seek and to resume
dataflow.</p>
<div class="refsect3">
<a name="gst-event-new-flush-stop.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>reset_time</p></td>
<td class="parameter_description"><p>if time should be reset</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-new-flush-stop.returns"></a><h4>Returns</h4>
<p>a new flush stop event. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-parse-flush-stop"></a><h3>gst_event_parse_flush_stop ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_parse_flush_stop (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *reset_time</code></em>);</pre>
<p>Parse the FLUSH_STOP event and retrieve the <em class="parameter"><code>reset_time</code></em>
 member.</p>
<div class="refsect3">
<a name="gst-event-parse-flush-stop.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>The event to parse</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>reset_time</p></td>
<td class="parameter_description"><p>if time should be reset. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-new-eos"></a><h3>gst_event_new_eos ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_new_eos (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>Create a new EOS event. The eos event can only travel downstream
synchronized with the buffer flow. Elements that receive the EOS
event on a pad can return <a class="link" href="GstPad.html#GST-FLOW-EOS:CAPS"><span class="type">GST_FLOW_EOS</span></a> as a <a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="type">GstFlowReturn</span></a>
when data after the EOS event arrives.</p>
<p>The EOS event will travel down to the sink elements in the pipeline
which will then post the <a class="link" href="GstMessage.html#GST-MESSAGE-EOS:CAPS"><span class="type">GST_MESSAGE_EOS</span></a> on the bus after they have
finished playing any buffered data.</p>
<p>When all sinks have posted an EOS message, an EOS message is
forwarded to the application.</p>
<p>The EOS event itself will not cause any state transitions of the pipeline.</p>
<div class="refsect3">
<a name="gst-event-new-eos.returns"></a><h4>Returns</h4>
<p>the new EOS event. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-new-gap"></a><h3>gst_event_new_gap ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_new_gap (<em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
                   <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> duration</code></em>);</pre>
<p>Create a new GAP event. A gap event can be thought of as conceptually
equivalent to a buffer to signal that there is no data for a certain
amount of time. This is useful to signal a gap to downstream elements
which may wait for data, such as muxers or mixers or overlays, especially
for sparse streams such as subtitle streams.</p>
<div class="refsect3">
<a name="gst-event-new-gap.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>timestamp</p></td>
<td class="parameter_description"><p>the start time (pts) of the gap</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>duration</p></td>
<td class="parameter_description"><p>the duration of the gap</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-new-gap.returns"></a><h4>Returns</h4>
<p>the new GAP event. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-parse-gap"></a><h3>gst_event_parse_gap ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_parse_gap (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                     <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> *timestamp</code></em>,
                     <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> *duration</code></em>);</pre>
<p>Extract timestamp and duration from a new GAP event.</p>
<div class="refsect3">
<a name="gst-event-parse-gap.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> of type <a class="link" href="GstEvent.html#GST-EVENT-GAP:CAPS"><span class="type">GST_EVENT_GAP</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>timestamp</p></td>
<td class="parameter_description"><p>location where to store the
start time (pts) of the gap, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>duration</p></td>
<td class="parameter_description"><p>location where to store the duration of
the gap, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-new-stream-start"></a><h3>gst_event_new_stream_start ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_new_stream_start (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *stream_id</code></em>);</pre>
<p>Create a new STREAM_START event. The stream start event can only
travel downstream synchronized with the buffer flow. It is expected
to be the first event that is sent for a new stream.</p>
<p>Source elements, demuxers and other elements that create new streams
are supposed to send this event as the first event of a new stream. It
should not be sent after a flushing seek or in similar situations
and is used to mark the beginning of a new logical stream. Elements
combining multiple streams must ensure that this event is only forwarded
downstream once and not for every single input stream.</p>
<p>The <em class="parameter"><code>stream_id</code></em>
 should be a unique string that consists of the upstream
stream-id, / as separator and a unique stream-id for this specific
stream. A new stream-id should only be created for a stream if the upstream
stream is split into (potentially) multiple new streams, e.g. in a demuxer,
but not for every single element in the pipeline.
<a class="link" href="GstPad.html#gst-pad-create-stream-id" title="gst_pad_create_stream_id ()"><code class="function">gst_pad_create_stream_id()</code></a> or <a class="link" href="GstPad.html#gst-pad-create-stream-id-printf" title="gst_pad_create_stream_id_printf ()"><code class="function">gst_pad_create_stream_id_printf()</code></a> can be
used to create a stream-id.  There are no particular semantics for the
stream-id, though it should be deterministic (to support stream matching)
and it might be used to order streams (besides any information conveyed by
stream flags).</p>
<div class="refsect3">
<a name="gst-event-new-stream-start.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>stream_id</p></td>
<td class="parameter_description"><p>Identifier for this stream</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-new-stream-start.returns"></a><h4>Returns</h4>
<p>the new STREAM_START event. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-parse-stream-start"></a><h3>gst_event_parse_stream_start ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_parse_stream_start (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                              <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **stream_id</code></em>);</pre>
<p>Parse a stream-id <em class="parameter"><code>event</code></em>
 and store the result in the given <em class="parameter"><code>stream_id</code></em>

location. The string stored in <em class="parameter"><code>stream_id</code></em>
 must not be modified and will
remain valid only until <em class="parameter"><code>event</code></em>
 gets freed. Make a copy if you want to
modify it or store it for later use.</p>
<div class="refsect3">
<a name="gst-event-parse-stream-start.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>a stream-start event.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>stream_id</p></td>
<td class="parameter_description"><p>pointer to store the stream-id. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-set-stream-flags"></a><h3>gst_event_set_stream_flags ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_set_stream_flags (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                            <em class="parameter"><code><a class="link" href="GstEvent.html#GstStreamFlags" title="enum GstStreamFlags"><span class="type">GstStreamFlags</span></a> flags</code></em>);</pre>
<div class="refsect3">
<a name="gst-event-set-stream-flags.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>a stream-start event</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>flags</p></td>
<td class="parameter_description"><p>the stream flags to set</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-1.2">1.2</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-parse-stream-flags"></a><h3>gst_event_parse_stream_flags ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_parse_stream_flags (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                              <em class="parameter"><code><a class="link" href="GstEvent.html#GstStreamFlags" title="enum GstStreamFlags"><span class="type">GstStreamFlags</span></a> *flags</code></em>);</pre>
<div class="refsect3">
<a name="gst-event-parse-stream-flags.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>a stream-start event</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>flags</p></td>
<td class="parameter_description"><p>address of variable where to store the stream flags. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-1.2">1.2</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-set-group-id"></a><h3>gst_event_set_group_id ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_set_group_id (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                        <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> group_id</code></em>);</pre>
<p>All streams that have the same group id are supposed to be played
together, i.e. all streams inside a container file should have the
same group id but different stream ids. The group id should change
each time the stream is started, resulting in different group ids
each time a file is played for example.</p>
<p>Use <a class="link" href="gstreamer-GstUtils.html#gst-util-group-id-next" title="gst_util_group_id_next ()"><code class="function">gst_util_group_id_next()</code></a> to get a new group id.</p>
<div class="refsect3">
<a name="gst-event-set-group-id.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>a stream-start event</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>group_id</p></td>
<td class="parameter_description"><p>the group id to set</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-1.2">1.2</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-parse-group-id"></a><h3>gst_event_parse_group_id ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
gst_event_parse_group_id (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *group_id</code></em>);</pre>
<div class="refsect3">
<a name="gst-event-parse-group-id.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>a stream-start event</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>group_id</p></td>
<td class="parameter_description"><p>address of variable where to store the group id. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-parse-group-id.returns"></a><h4>Returns</h4>
<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if a group id was set on the event and could be parsed,
<a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-1.2">1.2</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-set-stream"></a><h3>gst_event_set_stream ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_set_stream (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                      <em class="parameter"><code><a class="link" href="gstreamer-GstStream.html#GstStream" title="struct GstStream"><span class="type">GstStream</span></a> *stream</code></em>);</pre>
<p>Set the <em class="parameter"><code>stream</code></em>
 on the stream-start <em class="parameter"><code>event</code></em>
</p>
<div class="refsect3">
<a name="gst-event-set-stream.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>a stream-start event</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>stream</p></td>
<td class="parameter_description"><p>the stream object to set. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix05.html#api-index-1.10">1.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-parse-stream"></a><h3>gst_event_parse_stream ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_parse_stream (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                        <em class="parameter"><code><a class="link" href="gstreamer-GstStream.html#GstStream" title="struct GstStream"><span class="type">GstStream</span></a> **stream</code></em>);</pre>
<p>Parse a stream-start <em class="parameter"><code>event</code></em>
 and extract the <a class="link" href="gstreamer-GstStream.html#GstStream" title="struct GstStream"><span class="type">GstStream</span></a> from it.</p>
<div class="refsect3">
<a name="gst-event-parse-stream.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>a stream-start event</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>stream</p></td>
<td class="parameter_description"><p>address of variable to store the stream. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix05.html#api-index-1.10">1.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-new-segment"></a><h3>gst_event_new_segment ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_new_segment (<em class="parameter"><code>const <a class="link" href="GstSegment.html" title="GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>);</pre>
<p>Create a new SEGMENT event for <em class="parameter"><code>segment</code></em>
. The segment event can only travel
downstream synchronized with the buffer flow and contains timing information
and playback properties for the buffers that will follow.</p>
<p>The segment event marks the range of buffers to be processed. All
data not within the segment range is not to be processed. This can be
used intelligently by plugins to apply more efficient methods of skipping
unneeded data. The valid range is expressed with the <em class="parameter"><code>start</code></em>
 and <em class="parameter"><code>stop</code></em>

values.</p>
<p>The time value of the segment is used in conjunction with the start
value to convert the buffer timestamps into the stream time. This is
usually done in sinks to report the current stream_time.
<em class="parameter"><code>time</code></em>
 represents the stream_time of a buffer carrying a timestamp of
<em class="parameter"><code>start</code></em>
. <em class="parameter"><code>time</code></em>
 cannot be -1.</p>
<p><em class="parameter"><code>start</code></em>
 cannot be -1, <em class="parameter"><code>stop</code></em>
 can be -1. If there
is a valid <em class="parameter"><code>stop</code></em>
 given, it must be greater or equal the <em class="parameter"><code>start</code></em>
, including
when the indicated playback <em class="parameter"><code>rate</code></em>
 is &lt; 0.</p>
<p>The <em class="parameter"><code>applied_rate</code></em>
 value provides information about any rate adjustment that
has already been made to the timestamps and content on the buffers of the
stream. (<em class="parameter"><code>rate</code></em>
 * <em class="parameter"><code>applied_rate</code></em>
) should always equal the rate that has been
requested for playback. For example, if an element has an input segment
with intended playback <em class="parameter"><code>rate</code></em>
 of 2.0 and applied_rate of 1.0, it can adjust
incoming timestamps and buffer content by half and output a segment event
with <em class="parameter"><code>rate</code></em>
 of 1.0 and <em class="parameter"><code>applied_rate</code></em>
 of 2.0</p>
<p>After a segment event, the buffer stream time is calculated with:</p>
<p>  time + (TIMESTAMP(buf) - start) * ABS (rate * applied_rate)</p>
<div class="refsect3">
<a name="gst-event-new-segment.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>segment</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstSegment.html" title="GstSegment"><span class="type">GstSegment</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-new-segment.returns"></a><h4>Returns</h4>
<p>the new SEGMENT event. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-parse-segment"></a><h3>gst_event_parse_segment ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_parse_segment (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                         <em class="parameter"><code>const <a class="link" href="GstSegment.html" title="GstSegment"><span class="type">GstSegment</span></a> **segment</code></em>);</pre>
<p>Parses a segment <em class="parameter"><code>event</code></em>
 and stores the result in the given <em class="parameter"><code>segment</code></em>
 location.
<em class="parameter"><code>segment</code></em>
 remains valid only until the <em class="parameter"><code>event</code></em>
 is freed. Don't modify the segment
and make a copy if you want to modify it or store it for later use.</p>
<div class="refsect3">
<a name="gst-event-parse-segment.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>The event to parse</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>segment</p></td>
<td class="parameter_description"><p>a pointer to a <a class="link" href="GstSegment.html" title="GstSegment"><span class="type">GstSegment</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-copy-segment"></a><h3>gst_event_copy_segment ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_copy_segment (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                        <em class="parameter"><code><a class="link" href="GstSegment.html" title="GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>);</pre>
<p>Parses a segment <em class="parameter"><code>event</code></em>
 and copies the <a class="link" href="GstSegment.html" title="GstSegment"><span class="type">GstSegment</span></a> into the location
given by <em class="parameter"><code>segment</code></em>
.</p>
<div class="refsect3">
<a name="gst-event-copy-segment.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>The event to parse</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>segment</p></td>
<td class="parameter_description"><p>a pointer to a <a class="link" href="GstSegment.html" title="GstSegment"><span class="type">GstSegment</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-new-tag"></a><h3>gst_event_new_tag ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_new_tag (<em class="parameter"><code><a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);</pre>
<p>Generates a metadata tag event from the given <em class="parameter"><code>taglist</code></em>
.</p>
<p>The scope of the taglist specifies if the taglist applies to the
complete medium or only to this specific stream. As the tag event
is a sticky event, elements should merge tags received from
upstream with a given scope with their own tags with the same
scope and create a new tag event from it.</p>
<div class="refsect3">
<a name="gst-event-new-tag.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>taglist</p></td>
<td class="parameter_description"><p>metadata list. The event will take ownership
of the taglist. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-new-tag.returns"></a><h4>Returns</h4>
<p>a new <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-parse-tag"></a><h3>gst_event_parse_tag ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_parse_tag (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                     <em class="parameter"><code><a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a> **taglist</code></em>);</pre>
<p>Parses a tag <em class="parameter"><code>event</code></em>
 and stores the results in the given <em class="parameter"><code>taglist</code></em>
 location.
No reference to the taglist will be returned, it remains valid only until
the <em class="parameter"><code>event</code></em>
 is freed. Don't modify or free the taglist, make a copy if you
want to modify it or store it for later use.</p>
<div class="refsect3">
<a name="gst-event-parse-tag.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>a tag event</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>taglist</p></td>
<td class="parameter_description"><p>pointer to metadata list. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-new-buffer-size"></a><h3>gst_event_new_buffer_size ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_new_buffer_size (<em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> minsize</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> maxsize</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> async</code></em>);</pre>
<p>Create a new buffersize event. The event is sent downstream and notifies
elements that they should provide a buffer of the specified dimensions.</p>
<p>When the <em class="parameter"><code>async</code></em>
 flag is set, a thread boundary is preferred.</p>
<div class="refsect3">
<a name="gst-event-new-buffer-size.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>format</p></td>
<td class="parameter_description"><p>buffer format</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>minsize</p></td>
<td class="parameter_description"><p>minimum buffer size</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>maxsize</p></td>
<td class="parameter_description"><p>maximum buffer size</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>async</p></td>
<td class="parameter_description"><p>thread behavior</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-new-buffer-size.returns"></a><h4>Returns</h4>
<p>a new <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-parse-buffer-size"></a><h3>gst_event_parse_buffer_size ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_parse_buffer_size (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                             <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *minsize</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *maxsize</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *async</code></em>);</pre>
<p>Get the format, minsize, maxsize and async-flag in the buffersize event.</p>
<div class="refsect3">
<a name="gst-event-parse-buffer-size.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>The event to query</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>format</p></td>
<td class="parameter_description"><p>A pointer to store the format in. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>minsize</p></td>
<td class="parameter_description"><p>A pointer to store the minsize in. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>maxsize</p></td>
<td class="parameter_description"><p>A pointer to store the maxsize in. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>async</p></td>
<td class="parameter_description"><p>A pointer to store the async-flag in. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-new-qos"></a><h3>gst_event_new_qos ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_new_qos (<em class="parameter"><code><a class="link" href="GstEvent.html#GstQOSType" title="enum GstQOSType"><span class="type">GstQOSType</span></a> type</code></em>,
                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> proportion</code></em>,
                   <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTimeDiff" title="GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> diff</code></em>,
                   <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
<p>Allocate a new qos event with the given values.
The QOS event is generated in an element that wants an upstream
element to either reduce or increase its rate because of
high/low CPU load or other resource usage such as network performance or
throttling. Typically sinks generate these events for each buffer
they receive.</p>
<p><em class="parameter"><code>type</code></em>
 indicates the reason for the QoS event. <a class="link" href="GstEvent.html#GST-QOS-TYPE-OVERFLOW:CAPS"><span class="type">GST_QOS_TYPE_OVERFLOW</span></a> is
used when a buffer arrived in time or when the sink cannot keep up with
the upstream datarate. <a class="link" href="GstEvent.html#GST-QOS-TYPE-UNDERFLOW:CAPS"><span class="type">GST_QOS_TYPE_UNDERFLOW</span></a> is when the sink is not
receiving buffers fast enough and thus has to drop late buffers.
<a class="link" href="GstEvent.html#GST-QOS-TYPE-THROTTLE:CAPS"><span class="type">GST_QOS_TYPE_THROTTLE</span></a> is used when the datarate is artificially limited
by the application, for example to reduce power consumption.</p>
<p><em class="parameter"><code>proportion</code></em>
 indicates the real-time performance of the streaming in the
element that generated the QoS event (usually the sink). The value is
generally computed based on more long term statistics about the streams
timestamps compared to the clock.
A value &lt; 1.0 indicates that the upstream element is producing data faster
than real-time. A value &gt; 1.0 indicates that the upstream element is not
producing data fast enough. 1.0 is the ideal <em class="parameter"><code>proportion</code></em>
 value. The
proportion value can safely be used to lower or increase the quality of
the element.</p>
<p><em class="parameter"><code>diff</code></em>
 is the difference against the clock in running time of the last
buffer that caused the element to generate the QOS event. A negative value
means that the buffer with <em class="parameter"><code>timestamp</code></em>
 arrived in time. A positive value
indicates how late the buffer with <em class="parameter"><code>timestamp</code></em>
 was. When throttling is
enabled, <em class="parameter"><code>diff</code></em>
 will be set to the requested throttling interval.</p>
<p><em class="parameter"><code>timestamp</code></em>
 is the timestamp of the last buffer that cause the element
to generate the QOS event. It is expressed in running time and thus an ever
increasing value.</p>
<p>The upstream element can use the <em class="parameter"><code>diff</code></em>
 and <em class="parameter"><code>timestamp</code></em>
 values to decide
whether to process more buffers. For positive <em class="parameter"><code>diff</code></em>
, all buffers with
timestamp &lt;= <em class="parameter"><code>timestamp</code></em>
 + <em class="parameter"><code>diff</code></em>
 will certainly arrive late in the sink
as well. A (negative) <em class="parameter"><code>diff</code></em>
 value so that <em class="parameter"><code>timestamp</code></em>
 + <em class="parameter"><code>diff</code></em>
 would yield a
result smaller than 0 is not allowed.</p>
<p>The application can use general event probes to intercept the QoS
event and implement custom application specific QoS handling.</p>
<div class="refsect3">
<a name="gst-event-new-qos.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>type</p></td>
<td class="parameter_description"><p>the QoS type</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>proportion</p></td>
<td class="parameter_description"><p>the proportion of the qos message</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>diff</p></td>
<td class="parameter_description"><p>The time difference of the last Clock sync</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>timestamp</p></td>
<td class="parameter_description"><p>The timestamp of the buffer</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-new-qos.returns"></a><h4>Returns</h4>
<p>a new QOS event. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-parse-qos"></a><h3>gst_event_parse_qos ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_parse_qos (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                     <em class="parameter"><code><a class="link" href="GstEvent.html#GstQOSType" title="enum GstQOSType"><span class="type">GstQOSType</span></a> *type</code></em>,
                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *proportion</code></em>,
                     <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTimeDiff" title="GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> *diff</code></em>,
                     <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> *timestamp</code></em>);</pre>
<p>Get the type, proportion, diff and timestamp in the qos event. See
<a class="link" href="GstEvent.html#gst-event-new-qos" title="gst_event_new_qos ()"><code class="function">gst_event_new_qos()</code></a> for more information about the different QoS values.</p>
<p><em class="parameter"><code>timestamp</code></em>
 will be adjusted for any pad offsets of pads it was passing through.</p>
<div class="refsect3">
<a name="gst-event-parse-qos.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>The event to query</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>type</p></td>
<td class="parameter_description"><p>A pointer to store the QoS type in. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>proportion</p></td>
<td class="parameter_description"><p>A pointer to store the proportion in. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>diff</p></td>
<td class="parameter_description"><p>A pointer to store the diff in. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>timestamp</p></td>
<td class="parameter_description"><p>A pointer to store the timestamp in. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-new-seek"></a><h3>gst_event_new_seek ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_new_seek (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> rate</code></em>,
                    <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
                    <em class="parameter"><code><a class="link" href="GstEvent.html#GstSeekFlags" title="enum GstSeekFlags"><span class="type">GstSeekFlags</span></a> flags</code></em>,
                    <em class="parameter"><code><a class="link" href="GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> start_type</code></em>,
                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> start</code></em>,
                    <em class="parameter"><code><a class="link" href="GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> stop_type</code></em>,
                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> stop</code></em>);</pre>
<p>Allocate a new seek event with the given parameters.</p>
<p>The seek event configures playback of the pipeline between <em class="parameter"><code>start</code></em>
 to <em class="parameter"><code>stop</code></em>

at the speed given in <em class="parameter"><code>rate</code></em>
, also called a playback segment.
The <em class="parameter"><code>start</code></em>
 and <em class="parameter"><code>stop</code></em>
 values are expressed in <em class="parameter"><code>format</code></em>
.</p>
<p>A <em class="parameter"><code>rate</code></em>
 of 1.0 means normal playback rate, 2.0 means double speed.
Negatives values means backwards playback. A value of 0.0 for the
rate is not allowed and should be accomplished instead by PAUSING the
pipeline.</p>
<p>A pipeline has a default playback segment configured with a start
position of 0, a stop position of -1 and a rate of 1.0. The currently
configured playback segment can be queried with <a class="link" href="GstQuery.html#GST-QUERY-SEGMENT:CAPS"><span class="type">GST_QUERY_SEGMENT</span></a>.</p>
<p><em class="parameter"><code>start_type</code></em>
 and <em class="parameter"><code>stop_type</code></em>
 specify how to adjust the currently configured
start and stop fields in playback segment. Adjustments can be made relative
or absolute to the last configured values. A type of <a class="link" href="GstEvent.html#GST-SEEK-TYPE-NONE:CAPS"><span class="type">GST_SEEK_TYPE_NONE</span></a>
means that the position should not be updated.</p>
<p>When the rate is positive and <em class="parameter"><code>start</code></em>
 has been updated, playback will start
from the newly configured start position.</p>
<p>For negative rates, playback will start from the newly configured stop
position (if any). If the stop position is updated, it must be different from
-1 (<a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><span class="type">GST_CLOCK_TIME_NONE</span></a>) for negative rates.</p>
<p>It is not possible to seek relative to the current playback position, to do
this, PAUSE the pipeline, query the current playback position with
<a class="link" href="GstQuery.html#GST-QUERY-POSITION:CAPS"><span class="type">GST_QUERY_POSITION</span></a> and update the playback segment current position with a
<a class="link" href="GstEvent.html#GST-SEEK-TYPE-SET:CAPS"><span class="type">GST_SEEK_TYPE_SET</span></a> to the desired position.</p>
<div class="refsect3">
<a name="gst-event-new-seek.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>rate</p></td>
<td class="parameter_description"><p>The new playback rate</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>format</p></td>
<td class="parameter_description"><p>The format of the seek values</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>flags</p></td>
<td class="parameter_description"><p>The optional seek flags</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>start_type</p></td>
<td class="parameter_description"><p>The type and flags for the new start position</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>start</p></td>
<td class="parameter_description"><p>The value of the new start position</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>stop_type</p></td>
<td class="parameter_description"><p>The type and flags for the new stop position</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>stop</p></td>
<td class="parameter_description"><p>The value of the new stop position</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-new-seek.returns"></a><h4>Returns</h4>
<p>a new seek event. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-parse-seek"></a><h3>gst_event_parse_seek ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_parse_seek (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *rate</code></em>,
                      <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
                      <em class="parameter"><code><a class="link" href="GstEvent.html#GstSeekFlags" title="enum GstSeekFlags"><span class="type">GstSeekFlags</span></a> *flags</code></em>,
                      <em class="parameter"><code><a class="link" href="GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> *start_type</code></em>,
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *start</code></em>,
                      <em class="parameter"><code><a class="link" href="GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> *stop_type</code></em>,
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *stop</code></em>);</pre>
<p>Parses a seek <em class="parameter"><code>event</code></em>
 and stores the results in the given result locations.</p>
<div class="refsect3">
<a name="gst-event-parse-seek.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>a seek event</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>rate</p></td>
<td class="parameter_description"><p>result location for the rate. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>format</p></td>
<td class="parameter_description"><p>result location for the stream format. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>flags</p></td>
<td class="parameter_description"><p>result location for the <a class="link" href="GstEvent.html#GstSeekFlags" title="enum GstSeekFlags"><span class="type">GstSeekFlags</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>start_type</p></td>
<td class="parameter_description"><p>result location for the <a class="link" href="GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> of the start position. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>start</p></td>
<td class="parameter_description"><p>result location for the start position expressed in <em class="parameter"><code>format</code></em>
. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>stop_type</p></td>
<td class="parameter_description"><p>result location for the <a class="link" href="GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> of the stop position. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>stop</p></td>
<td class="parameter_description"><p>result location for the stop position expressed in <em class="parameter"><code>format</code></em>
. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-set-seek-trickmode-interval"></a><h3>gst_event_set_seek_trickmode_interval ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_set_seek_trickmode_interval (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                       <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> interval</code></em>);</pre>
<p>Sets a trickmode interval on a (writable) seek event. Elements
that support TRICKMODE_KEY_UNITS seeks SHOULD use this as the minimal
interval between each frame they may output.</p>
<p class="since">Since: 1.16</p>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-parse-seek-trickmode-interval"></a><h3>gst_event_parse_seek_trickmode_interval ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_parse_seek_trickmode_interval
                               (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> *interval</code></em>);</pre>
<p>Retrieve the trickmode interval that may have been set on a
seek event with <a class="link" href="GstEvent.html#gst-event-set-seek-trickmode-interval" title="gst_event_set_seek_trickmode_interval ()"><code class="function">gst_event_set_seek_trickmode_interval()</code></a>.</p>
<div class="refsect3">
<a name="gst-event-parse-seek-trickmode-interval.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>interval</p></td>
<td class="parameter_description"><p>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: 1.16</p>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-new-navigation"></a><h3>gst_event_new_navigation ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_new_navigation (<em class="parameter"><code><a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> *structure</code></em>);</pre>
<p>Create a new navigation event from the given description.</p>
<div class="refsect3">
<a name="gst-event-new-navigation.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>structure</p></td>
<td class="parameter_description"><p>description of the event. The event will take
ownership of the structure. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-new-navigation.returns"></a><h4>Returns</h4>
<p>a new <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-new-latency"></a><h3>gst_event_new_latency ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_new_latency (<em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> latency</code></em>);</pre>
<p>Create a new latency event. The event is sent upstream from the sinks and
notifies elements that they should add an additional <em class="parameter"><code>latency</code></em>
 to the
running time before synchronising against the clock.</p>
<p>The latency is mostly used in live sinks and is always expressed in
the time format.</p>
<div class="refsect3">
<a name="gst-event-new-latency.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>latency</p></td>
<td class="parameter_description"><p>the new latency value</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-new-latency.returns"></a><h4>Returns</h4>
<p>a new <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-parse-latency"></a><h3>gst_event_parse_latency ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_parse_latency (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> *latency</code></em>);</pre>
<p>Get the latency in the latency event.</p>
<div class="refsect3">
<a name="gst-event-parse-latency.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>The event to query</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>latency</p></td>
<td class="parameter_description"><p>A pointer to store the latency in. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-new-step"></a><h3>gst_event_new_step ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_new_step (<em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> amount</code></em>,
                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> rate</code></em>,
                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flush</code></em>,
                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> intermediate</code></em>);</pre>
<p>Create a new step event. The purpose of the step event is to instruct a sink
to skip <em class="parameter"><code>amount</code></em>
 (expressed in <em class="parameter"><code>format</code></em>
) of media. It can be used to implement
stepping through the video frame by frame or for doing fast trick modes.</p>
<p>A rate of &lt;= 0.0 is not allowed. Pause the pipeline, for the effect of rate
= 0.0 or first reverse the direction of playback using a seek event to get
the same effect as rate &lt; 0.0.</p>
<p>The <em class="parameter"><code>flush</code></em>
 flag will clear any pending data in the pipeline before starting
the step operation.</p>
<p>The <em class="parameter"><code>intermediate</code></em>
 flag instructs the pipeline that this step operation is
part of a larger step operation.</p>
<div class="refsect3">
<a name="gst-event-new-step.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>format</p></td>
<td class="parameter_description"><p>the format of <em class="parameter"><code>amount</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>amount</p></td>
<td class="parameter_description"><p>the amount of data to step</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>rate</p></td>
<td class="parameter_description"><p>the step rate</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>flush</p></td>
<td class="parameter_description"><p>flushing steps</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>intermediate</p></td>
<td class="parameter_description"><p>intermediate steps</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-new-step.returns"></a><h4>Returns</h4>
<p>a new <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-parse-step"></a><h3>gst_event_parse_step ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_parse_step (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                      <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *amount</code></em>,
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *rate</code></em>,
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *flush</code></em>,
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *intermediate</code></em>);</pre>
<p>Parse the step event.</p>
<div class="refsect3">
<a name="gst-event-parse-step.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>The event to query</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>format</p></td>
<td class="parameter_description"><p>a pointer to store the format in. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>amount</p></td>
<td class="parameter_description"><p>a pointer to store the amount in. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>rate</p></td>
<td class="parameter_description"><p>a pointer to store the rate in. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>flush</p></td>
<td class="parameter_description"><p>a pointer to store the flush boolean in. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>intermediate</p></td>
<td class="parameter_description"><p>a pointer to store the intermediate
boolean in. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-new-sink-message"></a><h3>gst_event_new_sink_message ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_new_sink_message (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                            <em class="parameter"><code><a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> *msg</code></em>);</pre>
<p>Create a new sink-message event. The purpose of the sink-message event is
to instruct a sink to post the message contained in the event synchronized
with the stream.</p>
<p><em class="parameter"><code>name</code></em>
 is used to store multiple sticky events on one pad.</p>
<div class="refsect3">
<a name="gst-event-new-sink-message.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>a name for the event</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>msg</p></td>
<td class="parameter_description"><p>the <a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> to be posted. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-new-sink-message.returns"></a><h4>Returns</h4>
<p>a new <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-parse-sink-message"></a><h3>gst_event_parse_sink_message ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_parse_sink_message (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                              <em class="parameter"><code><a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> **msg</code></em>);</pre>
<p>Parse the sink-message event. Unref <em class="parameter"><code>msg</code></em>
 after usage.</p>
<div class="refsect3">
<a name="gst-event-parse-sink-message.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>The event to query</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>msg</p></td>
<td class="parameter_description"><p>a pointer to store the <a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> in. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-new-reconfigure"></a><h3>gst_event_new_reconfigure ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_new_reconfigure (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>Create a new reconfigure event. The purpose of the reconfigure event is
to travel upstream and make elements renegotiate their caps or reconfigure
their buffer pools. This is useful when changing properties on elements
or changing the topology of the pipeline.</p>
<div class="refsect3">
<a name="gst-event-new-reconfigure.returns"></a><h4>Returns</h4>
<p>a new <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-new-caps"></a><h3>gst_event_new_caps ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_new_caps (<em class="parameter"><code><a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
<p>Create a new CAPS event for <em class="parameter"><code>caps</code></em>
. The caps event can only travel downstream
synchronized with the buffer flow and contains the format of the buffers
that will follow after the event.</p>
<div class="refsect3">
<a name="gst-event-new-caps.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>caps</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-new-caps.returns"></a><h4>Returns</h4>
<p>the new CAPS event. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-parse-caps"></a><h3>gst_event_parse_caps ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_parse_caps (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                      <em class="parameter"><code><a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a> **caps</code></em>);</pre>
<p>Get the caps from <em class="parameter"><code>event</code></em>
. The caps remains valid as long as <em class="parameter"><code>event</code></em>
 remains
valid.</p>
<div class="refsect3">
<a name="gst-event-parse-caps.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>The event to parse</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>caps</p></td>
<td class="parameter_description"><p>A pointer to the caps. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-new-toc"></a><h3>gst_event_new_toc ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_new_toc (<em class="parameter"><code><a class="link" href="GstToc.html" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> updated</code></em>);</pre>
<p>Generate a TOC event from the given <em class="parameter"><code>toc</code></em>
. The purpose of the TOC event is to
inform elements that some kind of the TOC was found.</p>
<div class="refsect3">
<a name="gst-event-new-toc.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>toc</p></td>
<td class="parameter_description"><p><a class="link" href="GstToc.html" title="GstToc"><span class="type">GstToc</span></a> structure. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>updated</p></td>
<td class="parameter_description"><p>whether <em class="parameter"><code>toc</code></em>
was updated or not.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-new-toc.returns"></a><h4>Returns</h4>
<p>a new <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-parse-toc"></a><h3>gst_event_parse_toc ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_parse_toc (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                     <em class="parameter"><code><a class="link" href="GstToc.html" title="GstToc"><span class="type">GstToc</span></a> **toc</code></em>,
                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *updated</code></em>);</pre>
<p>Parse a TOC <em class="parameter"><code>event</code></em>
 and store the results in the given <em class="parameter"><code>toc</code></em>
 and <em class="parameter"><code>updated</code></em>
 locations.</p>
<div class="refsect3">
<a name="gst-event-parse-toc.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>a TOC event.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>toc</p></td>
<td class="parameter_description"><p>pointer to <a class="link" href="GstToc.html" title="GstToc"><span class="type">GstToc</span></a> structure. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>updated</p></td>
<td class="parameter_description"><p>pointer to store TOC updated flag. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-new-toc-select"></a><h3>gst_event_new_toc_select ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_new_toc_select (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);</pre>
<p>Generate a TOC select event with the given <em class="parameter"><code>uid</code></em>
. The purpose of the
TOC select event is to start playback based on the TOC's entry with the
given <em class="parameter"><code>uid</code></em>
.</p>
<div class="refsect3">
<a name="gst-event-new-toc-select.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>uid</p></td>
<td class="parameter_description"><p>UID in the TOC to start playback from.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-new-toc-select.returns"></a><h4>Returns</h4>
<p> a new <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-parse-toc-select"></a><h3>gst_event_parse_toc_select ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_parse_toc_select (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **uid</code></em>);</pre>
<p>Parse a TOC select <em class="parameter"><code>event</code></em>
 and store the results in the given <em class="parameter"><code>uid</code></em>
 location.</p>
<div class="refsect3">
<a name="gst-event-parse-toc-select.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>a TOC select event.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>uid</p></td>
<td class="parameter_description"><p>storage for the selection UID. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-new-segment-done"></a><h3>gst_event_new_segment_done ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_new_segment_done (<em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> position</code></em>);</pre>
<p>Create a new segment-done event. This event is sent by elements that
finish playback of a segment as a result of a segment seek.</p>
<div class="refsect3">
<a name="gst-event-new-segment-done.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>format</p></td>
<td class="parameter_description"><p>The format of the position being done</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>position</p></td>
<td class="parameter_description"><p>The position of the segment being done</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-new-segment-done.returns"></a><h4>Returns</h4>
<p>a new <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-parse-segment-done"></a><h3>gst_event_parse_segment_done ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_parse_segment_done (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                              <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *position</code></em>);</pre>
<p>Extracts the position and format from the segment done message.</p>
<div class="refsect3">
<a name="gst-event-parse-segment-done.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>A valid <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> of type GST_EVENT_SEGMENT_DONE.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>format</p></td>
<td class="parameter_description"><p>Result location for the format, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>position</p></td>
<td class="parameter_description"><p>Result location for the position, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-new-protection"></a><h3>gst_event_new_protection ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_new_protection (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *system_id</code></em>,
                          <em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *data</code></em>,
                          <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *origin</code></em>);</pre>
<p>Creates a new event containing information specific to a particular
protection system (uniquely identified by <em class="parameter"><code>system_id</code></em>
), by which that
protection system can acquire key(s) to decrypt a protected stream.</p>
<p>In order for a decryption element to decrypt media
protected using a specific system, it first needs all the
protection system specific information necessary to acquire the decryption
key(s) for that stream. The functions defined here enable this information
to be passed in events from elements that extract it
(e.g., ISOBMFF demuxers, MPEG DASH demuxers) to protection decrypter
elements that use it.</p>
<p>Events containing protection system specific information are created using
<a class="link" href="GstEvent.html#gst-event-new-protection" title="gst_event_new_protection ()"><span class="type">gst_event_new_protection</span></a>, and they can be parsed by downstream elements
using <a class="link" href="GstEvent.html#gst-event-parse-protection" title="gst_event_parse_protection ()"><span class="type">gst_event_parse_protection</span></a>.</p>
<p>In Common Encryption, protection system specific information may be located
within ISOBMFF files, both in movie (moov) boxes and movie fragment (moof)
boxes; it may also be contained in ContentProtection elements within MPEG
DASH MPDs. The events created by <a class="link" href="GstEvent.html#gst-event-new-protection" title="gst_event_new_protection ()"><span class="type">gst_event_new_protection</span></a> contain data
identifying from which of these locations the encapsulated protection system
specific information originated. This origin information is required as
some protection systems use different encodings depending upon where the
information originates.</p>
<p>The events returned by <a class="link" href="GstEvent.html#gst-event-new-protection" title="gst_event_new_protection ()"><code class="function">gst_event_new_protection()</code></a> are implemented
in such a way as to ensure that the most recently-pushed protection info
event of a particular <em class="parameter"><code>origin</code></em>
 and <em class="parameter"><code>system_id</code></em>
 will
be stuck to the output pad of the sending element.</p>
<div class="refsect3">
<a name="gst-event-new-protection.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>system_id</p></td>
<td class="parameter_description"><p>a string holding a UUID that uniquely
identifies a protection system. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>data</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> holding protection system specific
information. The reference count of the buffer will be incremented by one. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>origin</p></td>
<td class="parameter_description"><p>a string indicating where the protection
information carried in the event was extracted from. The allowed values
of this string will depend upon the protection scheme.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-new-protection.returns"></a><h4>Returns</h4>
<p> a <a class="link" href="GstEvent.html#GST-EVENT-PROTECTION:CAPS"><span class="type">GST_EVENT_PROTECTION</span></a> event, if successful; <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
if unsuccessful.</p>
</div>
<p class="since">Since: <a class="link" href="ix07.html#api-index-1.6">1.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-parse-protection"></a><h3>gst_event_parse_protection ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_parse_protection (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                            <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **system_id</code></em>,
                            <em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> **data</code></em>,
                            <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **origin</code></em>);</pre>
<p>Parses an event containing protection system specific information and stores
the results in <em class="parameter"><code>system_id</code></em>
, <em class="parameter"><code>data</code></em>
 and <em class="parameter"><code>origin</code></em>
. The data stored in <em class="parameter"><code>system_id</code></em>
,
<em class="parameter"><code>origin</code></em>
 and <em class="parameter"><code>data</code></em>
 are valid until <em class="parameter"><code>event</code></em>
 is released.</p>
<div class="refsect3">
<a name="gst-event-parse-protection.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstEvent.html#GST-EVENT-PROTECTION:CAPS"><span class="type">GST_EVENT_PROTECTION</span></a> event.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>system_id</p></td>
<td class="parameter_description"><p>pointer to store the UUID
string uniquely identifying a content protection system. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>data</p></td>
<td class="parameter_description"><p>pointer to store a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>
holding protection system specific information. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>origin</p></td>
<td class="parameter_description"><p>pointer to store a value that
indicates where the protection information carried by <em class="parameter"><code>event</code></em>
was extracted
from. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix07.html#api-index-1.6">1.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-new-select-streams"></a><h3>gst_event_new_select_streams ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_new_select_streams (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *streams</code></em>);</pre>
<p>Allocate a new select-streams event.</p>
<p>The select-streams event requests the specified <em class="parameter"><code>streams</code></em>
 to be activated.</p>
<p>The list of <em class="parameter"><code>streams</code></em>
 corresponds to the "Stream ID" of each stream to be
activated. Those ID can be obtained via the <a class="link" href="gstreamer-GstStream.html#GstStream" title="struct GstStream"><span class="type">GstStream</span></a> objects present
in <a class="link" href="GstEvent.html#GST-EVENT-STREAM-START:CAPS"><span class="type">GST_EVENT_STREAM_START</span></a>, <a class="link" href="GstEvent.html#GST-EVENT-STREAM-COLLECTION:CAPS"><span class="type">GST_EVENT_STREAM_COLLECTION</span></a> or
<a class="link" href="GstMessage.html#GST-MESSAGE-STREAM-COLLECTION:CAPS"><span class="type">GST_MESSAGE_STREAM_COLLECTION</span></a>.</p>
<p>Note: The list of <em class="parameter"><code>streams</code></em>
 can not be empty.</p>
<div class="refsect3">
<a name="gst-event-new-select-streams.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>streams</p></td>
<td class="parameter_description"><p>the list of streams to
activate. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-new-select-streams.returns"></a><h4>Returns</h4>
<p>a new select-streams event or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case of
an error (like an empty streams list). </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="ix05.html#api-index-1.10">1.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-parse-select-streams"></a><h3>gst_event_parse_select_streams ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_parse_select_streams (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> **streams</code></em>);</pre>
<p>Parse the SELECT_STREAMS event and retrieve the contained streams.</p>
<div class="refsect3">
<a name="gst-event-parse-select-streams.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>The event to parse</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>streams</p></td>
<td class="parameter_description"><p>the streams. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix05.html#api-index-1.10">1.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-new-stream-collection"></a><h3>gst_event_new_stream_collection ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_new_stream_collection (<em class="parameter"><code><a class="link" href="gstreamer-GstStreamCollection.html#GstStreamCollection" title="struct GstStreamCollection"><span class="type">GstStreamCollection</span></a> *collection</code></em>);</pre>
<p>Create a new STREAM_COLLECTION event. The stream collection event can only
travel downstream synchronized with the buffer flow.</p>
<p>Source elements, demuxers and other elements that manage collections
of streams and post <a class="link" href="gstreamer-GstStreamCollection.html#GstStreamCollection" title="struct GstStreamCollection"><span class="type">GstStreamCollection</span></a> messages on the bus also send
this event downstream on each pad involved in the collection, so that
activation of a new collection can be tracked through the downstream
data flow.</p>
<div class="refsect3">
<a name="gst-event-new-stream-collection.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>collection</p></td>
<td class="parameter_description"><p>Active collection for this data flow</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-new-stream-collection.returns"></a><h4>Returns</h4>
<p>the new STREAM_COLLECTION event. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="ix05.html#api-index-1.10">1.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-parse-stream-collection"></a><h3>gst_event_parse_stream_collection ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_parse_stream_collection (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                   <em class="parameter"><code><a class="link" href="gstreamer-GstStreamCollection.html#GstStreamCollection" title="struct GstStreamCollection"><span class="type">GstStreamCollection</span></a> **collection</code></em>);</pre>
<p>Retrieve new <a class="link" href="gstreamer-GstStreamCollection.html#GstStreamCollection" title="struct GstStreamCollection"><span class="type">GstStreamCollection</span></a> from STREAM_COLLECTION event <em class="parameter"><code>event</code></em>
.</p>
<div class="refsect3">
<a name="gst-event-parse-stream-collection.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>a stream-collection event</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>collection</p></td>
<td class="parameter_description"><p>pointer to store the collection. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix05.html#api-index-1.10">1.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-new-stream-group-done"></a><h3>gst_event_new_stream_group_done ()</h3>
<pre class="programlisting"><a class="link" href="GstEvent.html" title="GstEvent"><span class="returnvalue">GstEvent</span></a> *
gst_event_new_stream_group_done (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> group_id</code></em>);</pre>
<p>Create a new Stream Group Done event. The stream-group-done event can
only travel downstream synchronized with the buffer flow. Elements
that receive the event on a pad should handle it mostly like EOS,
and emit any data or pending buffers that would depend on more data
arriving and unblock, since there won't be any more data.</p>
<p>This event is followed by EOS at some point in the future, and is
generally used when switching pads - to unblock downstream so that
new pads can be exposed before sending EOS on the existing pads.</p>
<div class="refsect3">
<a name="gst-event-new-stream-group-done.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>group_id</p></td>
<td class="parameter_description"><p>the group id of the stream group which is ending</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-event-new-stream-group-done.returns"></a><h4>Returns</h4>
<p>the new stream-group-done event. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="ix05.html#api-index-1.10">1.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gst-event-parse-stream-group-done"></a><h3>gst_event_parse_stream_group_done ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_event_parse_stream_group_done (<em class="parameter"><code><a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *group_id</code></em>);</pre>
<p>Parse a stream-group-done <em class="parameter"><code>event</code></em>
 and store the result in the given
<em class="parameter"><code>group_id</code></em>
 location.</p>
<div class="refsect3">
<a name="gst-event-parse-stream-group-done.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>a stream-group-done event.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>group_id</p></td>
<td class="parameter_description"><p>address of variable to store the group id into. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix05.html#api-index-1.10">1.10</a></p>
</div>
</div>
<div class="refsect1">
<a name="GstEvent.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GstEvent-struct"></a><h3>struct GstEvent</h3>
<pre class="programlisting">struct GstEvent {
  GstMiniObject mini_object;

  GstEventType  type;
  /* FIXME 2.0: Remove the GstEvent::timestamp field */
  guint64       timestamp;
  guint32       seqnum;
};
</pre>
<p>A <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>.</p>
<div class="refsect3">
<a name="GstEvent.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="struct_members_name">
<col class="struct_members_description">
<col width="200px" class="struct_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="struct_member_name"><p><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> <em class="structfield"><code><a name="GstEvent-struct.mini-object"></a>mini_object</code></em>;</p></td>
<td class="struct_member_description"><p>the parent structure</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><a class="link" href="GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> <em class="structfield"><code><a name="GstEvent-struct.type"></a>type</code></em>;</p></td>
<td class="struct_member_description"><p>the <a class="link" href="GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> of the event</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> <em class="structfield"><code><a name="GstEvent-struct.timestamp"></a>timestamp</code></em>;</p></td>
<td class="struct_member_description"><p>the timestamp of the event</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GstEvent-struct.seqnum"></a>seqnum</code></em>;</p></td>
<td class="struct_member_description"><p>the sequence number of the event</p></td>
<td class="struct_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GstEventTypeFlags"></a><h3>enum GstEventTypeFlags</h3>
<p><a class="link" href="GstEvent.html#GstEventTypeFlags" title="enum GstEventTypeFlags"><span class="type">GstEventTypeFlags</span></a> indicate the aspects of the different <a class="link" href="GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a>
values. You can get the type flags of a <a class="link" href="GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> with the
<a class="link" href="GstEvent.html#gst-event-type-get-flags" title="gst_event_type_get_flags ()"><code class="function">gst_event_type_get_flags()</code></a> function.</p>
<div class="refsect3">
<a name="GstEventTypeFlags.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-TYPE-UPSTREAM:CAPS"></a>GST_EVENT_TYPE_UPSTREAM</p></td>
<td class="enum_member_description">
<p>Set if the event can travel upstream.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-TYPE-DOWNSTREAM:CAPS"></a>GST_EVENT_TYPE_DOWNSTREAM</p></td>
<td class="enum_member_description">
<p>Set if the event can travel downstream.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-TYPE-SERIALIZED:CAPS"></a>GST_EVENT_TYPE_SERIALIZED</p></td>
<td class="enum_member_description">
<p>Set if the event should be serialized with data
                              flow.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-TYPE-STICKY:CAPS"></a>GST_EVENT_TYPE_STICKY</p></td>
<td class="enum_member_description">
<p>Set if the event is sticky on the pads.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-TYPE-STICKY-MULTI:CAPS"></a>GST_EVENT_TYPE_STICKY_MULTI</p></td>
<td class="enum_member_description">
<p>Multiple sticky events can be on a pad, each
                              identified by the event name.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-EVENT-TYPE-BOTH:CAPS"></a><h3>GST_EVENT_TYPE_BOTH</h3>
<pre class="programlisting">#define             GST_EVENT_TYPE_BOTH</pre>
<p>The same thing as <a class="link" href="GstEvent.html#GST-EVENT-TYPE-UPSTREAM:CAPS"><span class="type">GST_EVENT_TYPE_UPSTREAM</span></a> | <a class="link" href="GstEvent.html#GST-EVENT-TYPE-DOWNSTREAM:CAPS"><span class="type">GST_EVENT_TYPE_DOWNSTREAM</span></a>.</p>
</div>
<hr>
<div class="refsect2">
<a name="GstEventType"></a><h3>enum GstEventType</h3>
<p><a class="link" href="GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> lists the standard event types that can be sent in a pipeline.</p>
<p>The custom event types can be used for private messages between elements
that can't be expressed using normal
GStreamer buffer passing semantics. Custom events carry an arbitrary
<a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a>.
Specific custom events are distinguished by the name of the structure.</p>
<div class="refsect3">
<a name="GstEventType.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-UNKNOWN:CAPS"></a>GST_EVENT_UNKNOWN</p></td>
<td class="enum_member_description">
<p>unknown event.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-FLUSH-START:CAPS"></a>GST_EVENT_FLUSH_START</p></td>
<td class="enum_member_description">
<p>Start a flush operation. This event clears all data
                from the pipeline and unblock all streaming threads.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-FLUSH-STOP:CAPS"></a>GST_EVENT_FLUSH_STOP</p></td>
<td class="enum_member_description">
<p>Stop a flush operation. This event resets the
                running-time of the pipeline.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-STREAM-START:CAPS"></a>GST_EVENT_STREAM_START</p></td>
<td class="enum_member_description">
<p>Event to mark the start of a new stream. Sent before any
                other serialized event and only sent at the start of a new stream,
                not after flushing seeks.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-CAPS"></a>GST_EVENT_CAPS</p></td>
<td class="enum_member_description">
<p><a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a> event. Notify the pad of a new media type.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-SEGMENT:CAPS"></a>GST_EVENT_SEGMENT</p></td>
<td class="enum_member_description">
<p>A new media segment follows in the dataflow. The
                segment events contains information for clipping buffers and
                converting buffer timestamps to running-time and
                stream-time.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-STREAM-COLLECTION:CAPS"></a>GST_EVENT_STREAM_COLLECTION</p></td>
<td class="enum_member_description">
<p>A new <a class="link" href="gstreamer-GstStreamCollection.html#GstStreamCollection" title="struct GstStreamCollection"><span class="type">GstStreamCollection</span></a> is available (Since: 1.10)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-TAG:CAPS"></a>GST_EVENT_TAG</p></td>
<td class="enum_member_description">
<p>A new set of metadata tags has been found in the stream.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-BUFFERSIZE:CAPS"></a>GST_EVENT_BUFFERSIZE</p></td>
<td class="enum_member_description">
<p>Notification of buffering requirements. Currently not
                used yet.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-SINK-MESSAGE:CAPS"></a>GST_EVENT_SINK_MESSAGE</p></td>
<td class="enum_member_description">
<p>An event that sinks turn into a message. Used to
                         send messages that should be emitted in sync with
                         rendering.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-STREAM-GROUP-DONE:CAPS"></a>GST_EVENT_STREAM_GROUP_DONE</p></td>
<td class="enum_member_description">
<p>Indicates that there is no more data for
                the stream group ID in the message. Sent before EOS
                in some instances and should be handled mostly the same. (Since: 1.10)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-EOS:CAPS"></a>GST_EVENT_EOS</p></td>
<td class="enum_member_description">
<p>End-Of-Stream. No more data is to be expected to follow
                without either a STREAM_START event, or a FLUSH_STOP and a SEGMENT
                event.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-TOC:CAPS"></a>GST_EVENT_TOC</p></td>
<td class="enum_member_description">
<p>An event which indicates that a new table of contents (TOC)
                was found or updated.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-PROTECTION:CAPS"></a>GST_EVENT_PROTECTION</p></td>
<td class="enum_member_description">
<p>An event which indicates that new or updated
                encryption information has been found in the stream.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-SEGMENT-DONE:CAPS"></a>GST_EVENT_SEGMENT_DONE</p></td>
<td class="enum_member_description">
<p>Marks the end of a segment playback.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-GAP:CAPS"></a>GST_EVENT_GAP</p></td>
<td class="enum_member_description">
<p>Marks a gap in the datastream.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-QOS:CAPS"></a>GST_EVENT_QOS</p></td>
<td class="enum_member_description">
<p>A quality message. Used to indicate to upstream elements
                that the downstream elements should adjust their processing
                rate.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-SEEK:CAPS"></a>GST_EVENT_SEEK</p></td>
<td class="enum_member_description">
<p>A request for a new playback position and rate.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-NAVIGATION:CAPS"></a>GST_EVENT_NAVIGATION</p></td>
<td class="enum_member_description">
<p>Navigation events are usually used for communicating
                       user requests, such as mouse or keyboard movements,
                       to upstream elements.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-LATENCY:CAPS"></a>GST_EVENT_LATENCY</p></td>
<td class="enum_member_description">
<p>Notification of new latency adjustment. Sinks will use
                    the latency information to adjust their synchronisation.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-STEP:CAPS"></a>GST_EVENT_STEP</p></td>
<td class="enum_member_description">
<p>A request for stepping through the media. Sinks will usually
                 execute the step operation.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-RECONFIGURE:CAPS"></a>GST_EVENT_RECONFIGURE</p></td>
<td class="enum_member_description">
<p>A request for upstream renegotiating caps and reconfiguring.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-TOC-SELECT:CAPS"></a>GST_EVENT_TOC_SELECT</p></td>
<td class="enum_member_description">
<p>A request for a new playback position based on TOC
                       entry's UID.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-SELECT-STREAMS:CAPS"></a>GST_EVENT_SELECT_STREAMS</p></td>
<td class="enum_member_description">
<p>A request to select one or more streams (Since: 1.10)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-CUSTOM-UPSTREAM:CAPS"></a>GST_EVENT_CUSTOM_UPSTREAM</p></td>
<td class="enum_member_description">
<p>Upstream custom event</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-CUSTOM-DOWNSTREAM:CAPS"></a>GST_EVENT_CUSTOM_DOWNSTREAM</p></td>
<td class="enum_member_description">
<p>Downstream custom event that travels in the
                       data flow.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-CUSTOM-DOWNSTREAM-OOB:CAPS"></a>GST_EVENT_CUSTOM_DOWNSTREAM_OOB</p></td>
<td class="enum_member_description">
<p>Custom out-of-band downstream event.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-CUSTOM-DOWNSTREAM-STICKY:CAPS"></a>GST_EVENT_CUSTOM_DOWNSTREAM_STICKY</p></td>
<td class="enum_member_description">
<p>Custom sticky downstream event.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-CUSTOM-BOTH:CAPS"></a>GST_EVENT_CUSTOM_BOTH</p></td>
<td class="enum_member_description">
<p>Custom upstream or downstream event.
                        In-band when travelling downstream.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-EVENT-CUSTOM-BOTH-OOB:CAPS"></a>GST_EVENT_CUSTOM_BOTH_OOB</p></td>
<td class="enum_member_description">
<p>Custom upstream or downstream out-of-band event.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GstStreamFlags"></a><h3>enum GstStreamFlags</h3>
<div class="refsect3">
<a name="GstStreamFlags.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="GST-STREAM-FLAG-NONE:CAPS"></a>GST_STREAM_FLAG_NONE</p></td>
<td class="enum_member_description">
<p>This stream has no special attributes</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-STREAM-FLAG-SPARSE:CAPS"></a>GST_STREAM_FLAG_SPARSE</p></td>
<td class="enum_member_description">
<p>This stream is a sparse stream (e.g. a subtitle
   stream), data may flow only in irregular intervals with large gaps in
   between.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-STREAM-FLAG-SELECT:CAPS"></a>GST_STREAM_FLAG_SELECT</p></td>
<td class="enum_member_description">
<p>This stream should be selected by default. This
   flag may be used by demuxers to signal that a stream should be selected
   by default in a playback scenario.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-STREAM-FLAG-UNSELECT:CAPS"></a>GST_STREAM_FLAG_UNSELECT</p></td>
<td class="enum_member_description">
<p>This stream should not be selected by default.
   This flag may be used by demuxers to signal that a stream should not
   be selected by default in a playback scenario, but only if explicitly
   selected by the user (e.g. an audio track for the hard of hearing or
   a director's commentary track).</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-1.2">1.2</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GstQOSType"></a><h3>enum GstQOSType</h3>
<p>The different types of QoS events that can be given to the
<a class="link" href="GstEvent.html#gst-event-new-qos" title="gst_event_new_qos ()"><code class="function">gst_event_new_qos()</code></a> method.</p>
<div class="refsect3">
<a name="GstQOSType.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="GST-QOS-TYPE-OVERFLOW:CAPS"></a>GST_QOS_TYPE_OVERFLOW</p></td>
<td class="enum_member_description">
<p>The QoS event type that is produced when upstream
   elements are producing data too quickly and the element can't keep up
   processing the data. Upstream should reduce their production rate. This
   type is also used when buffers arrive early or in time.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-QOS-TYPE-UNDERFLOW:CAPS"></a>GST_QOS_TYPE_UNDERFLOW</p></td>
<td class="enum_member_description">
<p>The QoS event type that is produced when upstream
   elements are producing data too slowly and need to speed up their
   production rate.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-QOS-TYPE-THROTTLE:CAPS"></a>GST_QOS_TYPE_THROTTLE</p></td>
<td class="enum_member_description">
<p>The QoS event type that is produced when the
   application enabled throttling to limit the data rate.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GstSeekType"></a><h3>enum GstSeekType</h3>
<p>The different types of seek events. When constructing a seek event with
<a class="link" href="GstEvent.html#gst-event-new-seek" title="gst_event_new_seek ()"><code class="function">gst_event_new_seek()</code></a> or when doing <a class="link" href="GstSegment.html#gst-segment-do-seek" title="gst_segment_do_seek ()"><code class="function">gst_segment_do_seek()</code></a>.</p>
<div class="refsect3">
<a name="GstSeekType.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="GST-SEEK-TYPE-NONE:CAPS"></a>GST_SEEK_TYPE_NONE</p></td>
<td class="enum_member_description">
<p>no change in position is required</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-SEEK-TYPE-SET:CAPS"></a>GST_SEEK_TYPE_SET</p></td>
<td class="enum_member_description">
<p>absolute position is requested</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-SEEK-TYPE-END:CAPS"></a>GST_SEEK_TYPE_END</p></td>
<td class="enum_member_description">
<p>relative position to duration is requested</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GstSeekFlags"></a><h3>enum GstSeekFlags</h3>
<p>Flags to be used with <a class="link" href="GstElement.html#gst-element-seek" title="gst_element_seek ()"><code class="function">gst_element_seek()</code></a> or <a class="link" href="GstEvent.html#gst-event-new-seek" title="gst_event_new_seek ()"><code class="function">gst_event_new_seek()</code></a>. All flags
can be used together.</p>
<p>A non flushing seek might take some time to perform as the currently
playing data in the pipeline will not be cleared.</p>
<p>An accurate seek might be slower for formats that don't have any indexes
or timestamp markers in the stream. Specifying this flag might require a
complete scan of the file in those cases.</p>
<p>When performing a segment seek: after the playback of the segment completes,
no EOS will be emitted by the element that performed the seek, but a
<a class="link" href="GstMessage.html#GST-MESSAGE-SEGMENT-DONE:CAPS"><code class="literal">GST_MESSAGE_SEGMENT_DONE</code></a> message will be posted on the bus by the element.
When this message is posted, it is possible to send a new seek event to
continue playback. With this seek method it is possible to perform seamless
looping or simple linear editing.</p>
<p>When doing fast forward (rate &gt; 1.0) or fast reverse (rate &lt; -1.0) trickmode
playback, the <a class="link" href="GstEvent.html#GST-SEEK-FLAG-TRICKMODE:CAPS"><code class="literal">GST_SEEK_FLAG_TRICKMODE</code></a> flag can be used to instruct decoders
and demuxers to adjust the playback rate by skipping frames. This can improve
performance and decrease CPU usage because not all frames need to be decoded.</p>
<p>Beyond that, the <a class="link" href="GstEvent.html#GST-SEEK-FLAG-TRICKMODE-KEY-UNITS:CAPS"><code class="literal">GST_SEEK_FLAG_TRICKMODE_KEY_UNITS</code></a> flag can be used to
request that decoders skip all frames except key units, and
<a class="link" href="GstEvent.html#GST-SEEK-FLAG-TRICKMODE-NO-AUDIO:CAPS"><code class="literal">GST_SEEK_FLAG_TRICKMODE_NO_AUDIO</code></a> flags can be used to request that audio
decoders do no decoding at all, and simple output silence.</p>
<p>The <a class="link" href="GstEvent.html#GST-SEEK-FLAG-SNAP-BEFORE:CAPS"><code class="literal">GST_SEEK_FLAG_SNAP_BEFORE</code></a> flag can be used to snap to the previous
relevant location, and the <a class="link" href="GstEvent.html#GST-SEEK-FLAG-SNAP-AFTER:CAPS"><code class="literal">GST_SEEK_FLAG_SNAP_AFTER</code></a> flag can be used to
select the next relevant location. If <a class="link" href="GstEvent.html#GST-SEEK-FLAG-KEY-UNIT:CAPS"><code class="literal">GST_SEEK_FLAG_KEY_UNIT</code></a> is specified,
the relevant location is a keyframe. If both flags are specified, the nearest
of these locations will be selected. If none are specified, the implementation is
free to select whichever it wants.</p>
<p>The before and after here are in running time, so when playing backwards,
the next location refers to the one that will played in next, and not the
one that is located after in the actual source stream.</p>
<p>Also see part-seeking.txt in the GStreamer design documentation for more
details on the meaning of these flags and the behaviour expected of
elements that handle them.</p>
<div class="refsect3">
<a name="GstSeekFlags.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="GST-SEEK-FLAG-NONE:CAPS"></a>GST_SEEK_FLAG_NONE</p></td>
<td class="enum_member_description">
<p>no flag</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-SEEK-FLAG-FLUSH:CAPS"></a>GST_SEEK_FLAG_FLUSH</p></td>
<td class="enum_member_description">
<p>flush pipeline</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-SEEK-FLAG-ACCURATE:CAPS"></a>GST_SEEK_FLAG_ACCURATE</p></td>
<td class="enum_member_description">
<p>accurate position is requested, this might
                    be considerably slower for some formats.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-SEEK-FLAG-KEY-UNIT:CAPS"></a>GST_SEEK_FLAG_KEY_UNIT</p></td>
<td class="enum_member_description">
<p>seek to the nearest keyframe. This might be
                    faster but less accurate.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-SEEK-FLAG-SEGMENT:CAPS"></a>GST_SEEK_FLAG_SEGMENT</p></td>
<td class="enum_member_description">
<p>perform a segment seek.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-SEEK-FLAG-TRICKMODE:CAPS"></a>GST_SEEK_FLAG_TRICKMODE</p></td>
<td class="enum_member_description">
<p>when doing fast forward or fast reverse playback, allow
                    elements to skip frames instead of generating all
                    frames. (Since: 1.6)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-SEEK-FLAG-SKIP:CAPS"></a>GST_SEEK_FLAG_SKIP</p></td>
<td class="enum_member_description">
<p>Deprecated backward compatibility flag, replaced
                    by <a class="link" href="GstEvent.html#GST-SEEK-FLAG-TRICKMODE:CAPS"><code class="literal">GST_SEEK_FLAG_TRICKMODE</code></a></p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-SEEK-FLAG-SNAP-BEFORE:CAPS"></a>GST_SEEK_FLAG_SNAP_BEFORE</p></td>
<td class="enum_member_description">
<p>go to a location before the requested position,
                    if <a class="link" href="GstEvent.html#GST-SEEK-FLAG-KEY-UNIT:CAPS"><code class="literal">GST_SEEK_FLAG_KEY_UNIT</code></a> this means the keyframe at or before
                    the requested position the one at or before the seek target.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-SEEK-FLAG-SNAP-AFTER:CAPS"></a>GST_SEEK_FLAG_SNAP_AFTER</p></td>
<td class="enum_member_description">
<p>go to a location after the requested position,
                    if <a class="link" href="GstEvent.html#GST-SEEK-FLAG-KEY-UNIT:CAPS"><code class="literal">GST_SEEK_FLAG_KEY_UNIT</code></a> this means the keyframe at of after the
                    requested position.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-SEEK-FLAG-SNAP-NEAREST:CAPS"></a>GST_SEEK_FLAG_SNAP_NEAREST</p></td>
<td class="enum_member_description">
<p>go to a position near the requested position,
                    if <a class="link" href="GstEvent.html#GST-SEEK-FLAG-KEY-UNIT:CAPS"><code class="literal">GST_SEEK_FLAG_KEY_UNIT</code></a> this means the keyframe closest
                    to the requested position, if both keyframes are at an equal
                    distance, behaves like <a class="link" href="GstEvent.html#GST-SEEK-FLAG-SNAP-BEFORE:CAPS"><code class="literal">GST_SEEK_FLAG_SNAP_BEFORE</code></a>.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-SEEK-FLAG-TRICKMODE-KEY-UNITS:CAPS"></a>GST_SEEK_FLAG_TRICKMODE_KEY_UNITS</p></td>
<td class="enum_member_description">
<p>when doing fast forward or fast reverse
                    playback, request that elements only decode keyframes
                    and skip all other content, for formats that have
                    keyframes. (Since: 1.6)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-SEEK-FLAG-TRICKMODE-NO-AUDIO:CAPS"></a>GST_SEEK_FLAG_TRICKMODE_NO_AUDIO</p></td>
<td class="enum_member_description">
<p>when doing fast forward or fast reverse
                    playback, request that audio decoder elements skip
                    decoding and output only gap events or silence. (Since: 1.6)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="refsect1">
<a name="GstEvent.see-also"></a><h2>See Also</h2>
<p><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a></p>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.28</div>
</body>
</html>